#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h> // thu vien chuan.

void str_copy(char *s1,char *s2,int i,int j) // Copy xau tu ki tu thu i den j cua xau s2 vao xau s1.
 {
   int k; 
   memset(s1,'\0',20); // huy bo xau tren tao xau rong de tao mot xau moi.
   for (k=i;k<j;k++) s1[k-i]=s2[k];
   }

int find_tu_so(char *a) 
 {
   int n=strlen(a);	
   int tu_so;
   int mau_so;
   char s1[20]; // khai bao do dai toi da cua xau.
   for(int i=0;i<n;i++) if (a[i]=='/')
    {
      str_copy(s1,a,0,i);
	  break;
	}
   	tu_so=atol(s1); 
   	return tu_so;
 }
int find_mau_so(char *a)
 {
  int mau_so;
  int n=strlen(a);
  char s1[20];
   for(int i=0;i<n;i++) if (a[i]=='/')
    {
      str_copy(s1,a,i+1,n);
      break;
    }
 	mau_so=atol(s1);
 	return mau_so;
}
int UCLN(int a, int b)
 {
 	int x,y,r;
 	x=a; y=b;
 	if (b>a)
	  {
	    x=b;
		y=a;
	 }
	while (y!=0)  
    {
      r = x % y;
      x = y;
      y = r;
    }
 if (x>0)return x; else return (-x);
 }
main()
{   
    int c1,c2;
    int a1,a2,b1,b2,kq1,kq2,r;
	long n1,n2;
	float f1,f2,kq;
	char str1[20],str2[20];
	printf("Nhap so thu nhat: ");
	fflush(stdin);
	gets(str1);
	n1=0;
	n2=0;
	f1=0;
	f2=0;
	c1=0;
	c2=0;
	for (int i=0;i<strlen(str1);i++)
	   if ((str1[i])=='/')
	    {
	      c1=1;
	      a1=find_tu_so(str1);
		  a2=find_mau_so(str1);
		  f1=float(a1)/float(a2);
	     }
    if (c1==0)
	 if (atof(str1)!=0)
     {
     	 f1=atof(str1);
     }
     else
	  { 
	  	n1=atol(str1);
	   }
	printf("Nhap so thu hai: ");
	fflush(stdin);
	gets(str2);
	for (int i=0;i<strlen(str2);i++)
	   if ((str2[i])=='/')
	    {
	      c2=1;
	      b1=find_tu_so(str2);
		  b2=find_mau_so(str2);
		  f2=float(b1)/float(b2);
	     }
	  
    if (c2==0)
	 if	(atof(str2)!=0)
     {
     	f2=atof(str2);
     }
      else
      { 
	  	n2=atol(str2);
	   }  
   if ((c1==1)&&(c2==1))
    {
      kq1=a1*b2+b1*a2;
      kq2=a2*b2;
      r=UCLN(kq1,kq2);
      kq1=kq1/r;
      kq2=kq2/r;
      printf("\n Ket qua: ");
      printf("%d",kq1);
      printf("/");
      printf("%d",kq2);
      }
      else 
       {
       	printf("\n Ket qua phep cong: %20.5f",n1+n2+f1+f2);
       	printf("\n Ket qua phep tru : %20.5f",n1-n2+f1-f2);
       	printf("\n Ket qua phep nhan: %20.5f",(n1*n2)+(n1*f2)+(f1*n2)+(f1*f2));
       	if(n2!=0)
       	{
       		printf("\n ket qua phep chia: %20.5f",(float(n1)/float(n2)+f1/float(n2)));
       		
       	}
       	else if(f2!=0)
       	{
       	
       	printf("\n Ket qua phep chia: %20.5f",(float(n1)/f2+f1/f2));
       }
       	}
}	 

